The invention relates to a method of determining parameters of a sample by X-ray scattering comprising the steps of:                a) exposing the sample to X-rays and measuring scattered X-ray intensity;        b) generating a parameterized model of the sample which is used for numerical simulation of scattered X-ray intensity on the basis of a physical scattering theory;        c) comparing the experimental and simulated X-ray scattering data to generate an error value;        d) modifying the parameters of the model by means of a genetic algorithm involving an amount of individuals each with an equal number N of encoded parameters forming a generation and applying the genetic operators of “selection”, “crossover” and “mutation” used for composing successive generations of evolving individuals.        
Such a method has been disclosed in A. Ulyanenkov, K. Omote, J. Harada; Physica B 283 (2000), 237–241.
X-ray analysis is applied in numerous ways in biology, chemistry, physics and materials science. The interaction of x-rays with a sample can reveal information about the sample that would be difficult to obtain by other means, if at all. Moreover, x-ray analysis is a non-destructive method, making it particularly attractive.
One way to investigate unknown parameters t1, . . . tN of complex samples such as multilayer structures by X-ray analysis are the so called trial and error methods. These methods start with the measurement of an experimental scattering spectrum of the sample. Then, numerous test structures (each with a different set of parameters defining a respective test structure) are assumed and simulated scattering spectra for these test structures are calculated on the basis of a physical model (e.g. kinematic scattering theory). The parameters defining the test structure whose theoretical spectrum has the best match with the experimental scattering spectrum are considered to be approximately the true parameters of the sample. The best match is typically identified as the global minimum of an error value, in particular a χ2 difference function of the experimental spectrum and the simulated spectra. Typical parameters thus approximated include film or layer thickness, lattice strain, contamination or doping level and the like.
In general, it is impossible to calculate simulated spectra for all possible test structures due to the finite capacity of computers. On the contrary, it is necessary to provide a decision algorithm determining the test structures to be calculated. There is an arbitrarily chosen test structure (or a set of test structures) to begin with, and the next test structures to be calculated are chosen by the decision algorithm on the basis of the quality of match of the previous test structures.
The most common decision algorithms are gradiental methods. If for a certain parameter ti the difference function χ2 decreases when changing the parameter ti slightly into one direction, then the next set of parameters is chosen such that ti is shifted slightly in this direction. If the difference function χ2 increases again, however, the parameter ti is no more changed into said direction. Typical gradiental methods include the Simplex algorithm, the Levenberg-Marquardt algorithm and the Newton algorithm. However, gradient methods run the risk of getting trapped in local minima not identical with the global minimum of the difference function, and no useful approximation for the true parameters of the sample can be found in such a case.
One type of decision algorithm overcoming this problem is the so called genetic algorithm. This decision algorithm works as follows:
In the beginning, there is an arbitrarily chosen starting set of so called individuals (or chromosomes). Each individual represents a test structure. These individuals all carry an equal number of so-called encoded parameters (or genes). The encoded parameters are each correlated to a physical parameter of the test structure, e.g. an impurity level or a layer thickness. Thus the number of encoded parameters corresponds to the number of physical parameters of the modeled sample to be investigated. All individuals as a whole represent a population. A typical population comprises 20 to 50 individuals.
During the genetic algorithm, the population is altered. The starting population is transformed into a new population, and this new one is altered into another one and so on. The populations at different steps of alteration are called generations. A generation to be altered is called a parent generation, and the generation newly created out of the parent generation is called an offspring generation. Thus, the starting population is the first parent generation in the algorithm. Subsequent generations of individuals are intended to contain an individual(s) approaching the global minimum of the error value.
For the creation of an offspring generation, at first the error value of each individual in the parent generation is calculated. The elite, i.e. a number of typically one or two individuals with the smallest error value in the parent generation, are copied without any alteration into the offspring generation. Then the individuals of the parent generation are subjected to genetic operators.
These operators include a selection operator which determines individuals of the parent generations which are used to produce the offspring generation.
Another operator is the mutation operator. It decides about changes in single genes of an offspring individual, in particular which genes and to what degree these genes are altered. In the state of the art, these mutations are random changes in the genes.
A third operator determines the crossover of the genes of two mating parent individuals (crossover or mating operator). It decides what gene is taken from which parent. In the state of the art, it is known to cut the parent chromosomes (=individuals) in half, and the upper part of the offspring individual is chosen as the upper part of the first parent individual, and the lower part of the offspring individual is chosen as the lower part of the second parent individual.
Through application of these genetic operators, an unlimited number of subsequent generations can be created. Typically, about 10 to 100 generations are calculated. In the final (youngest) offspring generation, the individual with the lowest error value corresponds to the test structure with the best match with the true sample structure. The genetic algorithm is very reliable and gives a good approximation to the true sample structure, with only a low risk of running into a local minimum of the error value function.
In order to increase the final accuracy of the determined sample parameters, a gradiental method may subsequently be applied, with the set of parameter determined in the genetic algorithm as a starting set of parameters in the gradiental method. This starting set of parameters should be close enough to the global minimum to avoid trapping in a non-global minimum.
However, the genetic algorithm requires a lot of calculations, determined by the amount of individuals per generation, the number of generations and the complexity of the genetic operators.
It is the object of the present invention to improve the genetic algorithm such that it can approximate the true sample parameters faster, i.e. within less generations and/or with less individuals per generation, and with better reliability.